#include <iostream>
#include <stack>

using namespace std;

int main()
{
	/*
	 * stack特点：
	 * 1.默认的底层实现为vector，也是一个适配器类
	 * 2.不允许随机访问堆栈元素，甚至不允许遍历堆栈。
	 * 3.可以压入到栈顶，从栈顶弹出元素，查看栈顶元素的值，检查元素数目和测试堆栈是否为空。
	 * */

	stack<int> sta;

	sta.push(11);
	sta.push(12);
	sta.push(13);
	sta.push(14);
	sta.push(15);
	sta.push(16);

	cout << "sta.top  : " << sta.top() << endl;
	cout << "sta.size : " << sta.size() << endl;


	while(!sta.empty())
	{
		// 从栈底不断取出元素
		int value = sta.top();
		cout << "value: " << value << endl;
		// 从栈底弹出元素，并没有返回值
		sta.pop();
	}

}
